home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / seyon / SeErr.c < prev    next >
C/C++ Source or Header  |  1995-05-03  |  3KB  |  135 lines

  1.  
  2. /*
  3.  * This file is part of the Seyon, Copyright (c) 1992-1993 by Muhammad M.
  4.  * Saggaf. All rights reserved.
  5.  *
  6.  * See the file COPYING (1-COPYING) or the manual page seyon(1) for a full
  7.  * statement of rights and permissions for this program.
  8.  */
  9.  
  10. #include <X11/Intrinsic.h>
  11. #include <X11/StringDefs.h>
  12. #include <X11/Shell.h>
  13. #include <X11/Xaw/Dialog.h>
  14.  
  15. #include "seyon.h"
  16. #include "SeDecl.h"
  17.  
  18. #define AddPopupTopLevelNoGeom(name, parent) \
  19.   SeAddPopupWG(name, parent, NULL, NULL, 0, 0, True, False)
  20. #define AddPopupCentered(name, parent, geomW) \
  21.   SeAddPopupWG(name, parent, geomW, geomW, SeWidgetWidth(geomW)/2, \
  22.                SeWidgetHeight(geomW)/2, False, True)
  23.  
  24. extern Widget   topLevel;
  25.  
  26. void
  27. ErrorExitCallback(widget, exitProc)
  28.      Widget          widget;
  29.      XtPointer       exitProc;
  30. {
  31.   /* Can you believe this? */
  32.   (*((int (*)())exitProc)) (1);
  33.   /* I'm just casting the variable to be a function returning int
  34.      and then calling the function pointed to by the variable */
  35. }
  36.  
  37. void
  38. PopupInitError(name, callback)
  39.      String          name;
  40.      void            (*callback) ();
  41. {
  42.   Widget          popup,
  43.                   dialog;
  44.  
  45.   popup = AddPopupTopLevelNoGeom("initError", topLevel);
  46.   dialog = SeAddDialog(name, popup);
  47.   XawDialogAddButton(dialog, "exit", ErrorExitCallback, (XtPointer) callback);
  48.  
  49.   PopupCenteredOnRoot(popup);
  50.   Beep();
  51.   XtMapWidget(popup);
  52. }
  53.  
  54. void
  55. PopupFatalError(name)
  56.      String          name;
  57. {
  58.   Widget          popup,
  59.                   dialog;
  60.   void            cleanup_exit();
  61.  
  62.   if (XtIsRealized(topLevel))
  63.     popup = AddSimplePopup("fatalError", topLevel);
  64.   else
  65.     popup = AddPopupTopLevelNoGeom("fatalError", topLevel);
  66.  
  67.   dialog = SeAddDialog(name, popup);
  68.   XawDialogAddButton(dialog, "exit", ErrorExitCallback,
  69.              (XtPointer) cleanup_exit);
  70.  
  71.   Beep();
  72.  
  73.   if (XtIsRealized(topLevel))
  74.     {PopupCentered(popup, topLevel); return;}
  75.       
  76.   PopupCenteredOnRoot(popup);
  77.   XtMapWidget(popup);
  78.   XtAppMainLoop(app_con);
  79. }
  80.  
  81. void
  82. PopupError(name, parent)
  83.      String          name;
  84.      Widget          parent;
  85. {
  86.   Widget          popup,
  87.                   dialog;
  88.  
  89.   if (!parent) parent = topLevel;
  90.   if (XtIsRealized(parent))
  91.     popup = AddSimplePopup("error", parent, topLevel);
  92.   else
  93.     popup = AddPopupTopLevelNoGeom("error", parent);
  94.  
  95.   dialog = SeAddDialog(name, popup);
  96.   XawDialogAddButton(dialog, "dismiss", DestroyShellCallBack, 
  97.                      (XtPointer)popup);
  98.  
  99.   Beep();
  100.  
  101.   if (XtIsRealized(parent))
  102.     {PopupCentered(popup, parent); return;}
  103.       
  104.   PopupCenteredOnRoot(popup);
  105.   XtMapWidget(popup);
  106. }
  107.  
  108. #ifdef notdef
  109. void
  110. SePopupWarningF(parent, fmt, a, b, c, d)
  111.      Widget          parent;
  112.      String          fmt,
  113.                      a,
  114.                      b,
  115.                      c,
  116.                      d;
  117. {
  118.   SePopupNoticeF(parent, 0, "Seyon Warning", DestroyParentPopup,
  119.          fmt, a, b, c, d);
  120. }
  121.  
  122. void
  123. SePopupInitWarningF(parent, fmt, a, b, c, d)
  124.      Widget          parent;
  125.      String          fmt,
  126.                      a,
  127.                      b,
  128.                      c,
  129.                      d;
  130. {
  131.   SePopupNoticeF(parent, 0, "Seyon Initialization Warning",
  132.          DestroyParentPopup, fmt, a, b, c, d);
  133. }
  134. #endif
  135.